package Various;

import Jastermind.Game;
import Jastermind.Player;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.util.ArrayList;
import javax.swing.JOptionPane;

public class Tools {

    public static int countColorInCombinaison(ArrayList<Color> combinaison, Color color) {
        int compteur = 0;
        for (int iColor = 0; iColor < combinaison.size(); iColor++) {
            if (combinaison.get(iColor) == color) {
                compteur++;
            }
        }
        return compteur;
    }

    public static boolean isColorNotUse(Player joueur, Color color) {
        if (color != null) {
            if (!color.equals(Color.WHITE)) {
                if (!joueur.getListColors().contains(color)) {
                    if (!color.equals(joueur.getBienPlace()) && !color.equals(joueur.getMalPlace())) {
                        return true;
                    }
                }
                JOptionPane.showMessageDialog(null, "Cette couleur est déjà utilisée. La modification impossible");
            }
            JOptionPane.showMessageDialog(null, "Le blanc ne peut être utilisé pour des questions de visibilité");
        }
        return false;
    }

    public static Component getComponentShown(Container container) {
        int iComponent = 0;
        while (iComponent < container.getComponentCount() && !container.getComponent(iComponent).isShowing()) {
            iComponent++;
        }
        return container.getComponent(iComponent);
    }
    public static ArrayList<Player> listToPlayersList(ArrayList listToConvert){
        ArrayList<Player> listPlayers=new ArrayList<Player>();
        for(int i=0;i<listToConvert.size();i++){
            listPlayers.add((Player)listToConvert.get(i));
        }
        return listPlayers;
    }
    public static ArrayList<Game> listToGamesList(ArrayList listToConvert){
        ArrayList<Game> listGames=new ArrayList<Game>();
        for(int i=0;i<listToConvert.size();i++){
            listGames.add((Game)listToConvert.get(i));
        }
        return listGames;
    }
}
